class Person:

    def __init__(self, age):
        self.__age = age

    # 装饰器方式的property，把age方法当作属性使用，表示当获取属性时会执行下面修饰的方法
    @property
    def age(self):
        """getter方法"""
        return self.__age

    # 把age方法当作属性使用，表示当设置属性时会执行下面修饰的方法
    @age.setter
    def age(self, value):
        """setter方法"""
        self.__age = value

    # 把age方法当作属性使用，表示当删除属性时会执行下面修饰的方法
    @age.deleter
    def age(self):
        """deleter方法"""
        del self.__age


person = Person(29)
# 获取属性
print(person.age)
# 修改属性
person.age = 32
print(person.age)
print(hasattr(person, 'age'))

# 删除属性
del person.age
print(person.__dict__)
print(hasattr(person, 'age'))
